<!DOCTYPE html>
<html style="height: 100%">

<head>
  <meta charset="utf-8">
</head>
<style>
  body {
    height: 100%;
    margin: 0;
  }

  .data-time {
    color: #FFF;
  }

  .wrap {
    height: 100%;
    background: url(bg/bg1.jpg);
  }

  #container {
    height: 90%;
    box-shadow: -10px -10px 20px 20px skyblue inset;
  }

  .sang_Calender {
    border: #62AFF4 1px solid;
    width: 170px;
    height: 26px;
    outline: none;
    background-color: transparent;
    border-radius: 5px;
  }

  .search {
    box-sizing: border-box;
    height: 10%;
    box-shadow: -10px -10px 20px 20px skyblue inset;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    color: #fff;
  }
</style>
<script type="text/javascript" src="js/echarts.js"></script>
<script src="js/axios.js"></script>

<body>
  <div class="wrap">
    <div class="search">
      <div class="opertion" style="display: flex;justify-content: flex-start;">
        <div class="setTime" style="font-size: 18px; margin-left: 20px;"></div>
        <button class="checkSearch" onclick="getWmsIfo()"
          style="font-size: 18px; margin-left: 50px;background-color: #405477;color: white;">查询</button>
      </div>
    </div>
    <div id="container"></div>
  </div>

  <script type="text/javascript">


    function showWmsInfo() {
      // 1
      var dom = document.getElementById("container");
      var myChart = echarts.init(dom, 'light');

      let time = new Date().toLocaleDateString().split('/').join('-');
      // 时间 与 取消
      document.querySelector('.setTime').innerHTML = `<span>时间: ${time}</span> <spn style="margin-left:  50px">取消：100</spn>`
      document.querySelector('.setTime').style.fontSize = fontSize(0.23) + 'px'
      // 查询按钮
      document.querySelector('.checkSearch').style.fontSize = fontSize(0.23) + 'px'
      // 2
      var option;
      // prettier-ignore
      let dataAxis = ['WMS订单被接收', '波次创建', '拣货', '复核'];
      let data = [4293, 4055, 4055, 4056];
      let undefinedData = [300, 238, 270, 260];
      let yMax = 5000;
      let dataShadow = [];
      for (let i = 0; i < data.length; i++) {
        dataShadow.push(yMax);
      }
      option = {
        // 是否显示提示框组件,鼠标放上去将提示数量
        tooltip: {
          show: true,
          // 坐标轴触发 鼠标经过，在柱形图显示Y轴线条
          trigger: 'axis',
        },
        // 设置x轴样式
        xAxis: {
          data: dataAxis,
          axisLabel: {
            inside: false,
            fontSize: fontSize(0.25),
            color: '#FFF',
          },
          axisTick: {
            show: false,
          },
          axisLine: {
            show: false,
          },
          z: 10,
        },
        // 设置左边Y轴样式
        yAxis: {
          type: 'value',
          axisLine: {
            show: false,
          },
          axisTick: {
            show: false,
          },
          axisLabel: {
            fontSize: fontSize(0.25),
            color: '#fff',
          },
        },
        // 控制顶部样式(未完成,已完成)
        legend: {
          textStyle: {
            color: '#FFF',
            fontSize: fontSize(0.25),
          },
        },
        // dataZoom 鼠标滚轮、手指滑动（触屏上）来缩放或漫游坐标系。
        // dataZoom: [
        //   {
        //     type: 'inside',
        //   },
        // ],
        series: [
          // 蓝色柱子
          {
            type: 'bar',
            showBackground: true,
            name: '已完成',
            stack: 'Ad',
            // 设置柱形图大小
            // barWidth: 120,
            // 设置柱形图渐变颜色
            itemStyle: {
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                { offset: 0, color: '#83bff6' },
                { offset: 0.5, color: '#188df0' },
                { offset: 1, color: '#188df0' },
              ]),
            },
            emphasis: {
              itemStyle: {
                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                  { offset: 0, color: '#2378f7' },
                  { offset: 0.7, color: '#2378f7' },
                  { offset: 1, color: '#83bff6' },
                ]),
              },
            },
            data,
            // 控制蓝色柱子样式
            label: {
              show: true,
              color: '#FFF',
              fontSize: fontSize(0.25),
              // position: 'insideTop',
            },
          },
          // 红色柱子
          {
            name: '未完成',
            type: 'bar',
            stack: 'Ad',
            color: 'red',
            emphasis: {
              focus: 'series',
            },
            data: undefinedData,
            // 控制红色柱子样式
            label: {
              show: true,
              // position: 'insideTop',
              fontSize: fontSize(0.25),
            },
          },
        ],
      };

      const zoomSize = 8;
      myChart.on('click', function (params) {
        console.log(dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)]);
        myChart.dispatchAction({
          type: 'dataZoom',
          startValue: dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)],
          endValue: dataAxis[Math.min(params.dataIndex + zoomSize / 2, data.length - 1)],
        });
      });

      myChart.setOption(option);
    }

    // 执行调用
    showWmsInfo()
    // 监听窗口的大小
    window.addEventListener('resize', debounce(updateEchat, 500))
    // 需要防抖的函数
    function updateEchat() {
      myChart.resize() // 重新渲染
      console.log("resize")
    }

    function debounce(fn, delay) {
      let timer = null
      return function () {
        // 这里为每次变化要执行旳函数  
        if (timer) {
          clearTimeout(timer)
        }
        timer = setTimeout(fn, delay)
      }
    }

    // 采用rem为单位，根据屏幕的宽度调整html的font-size。
    //获取屏幕宽度并计算比例：
    // 如在: 1920屏宽下字体设置为12px,就可以传入0.12给fontSize fontSize(0.12)
    function fontSize(fontSizeParam) {
      let docEl = document.documentElement
      let clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
      if (!clientWidth) return;
      let fontSize = 100 * (clientWidth / 1920);
      return fontSizeParam * fontSize;

    }

  </script>
</body>

</html>